<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        function Foo(){
            getName = function () {
                console.log(1)
            }
            return this;
        }
        Foo.getName = function(){
            console.log(2)
        }
        Foo.prototype.getName = function(){
            console.log(3)
        }
        var getName = function(){
            console.log(4)
        }
        
        function getName(){
            console.log(5)
        }

        Foo.getName();
        getName();
        new Foo.getName();
        new Foo().getName();
        new new Foo().getName()

        /*
            变量提升
                Foo = AAAFFF000
                getName = function =>5
            代码执行
                
            AAAFFF000
            “代码字符串”
            getName:function => 2
            prototype:BBBFFF000;

            BBBFFF000
            constructor:Foo
                getName:func =>3

        */
    </script>
</body>
</html>